/*
 * Copyright 2009 by Tran Nhut Trung.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.gdevelop.gwtxp.rebind.gwt;

import com.gdevelop.gwtxp.rebind.AbstractTag;

import com.gdevelop.gwtxp.rebind.Tag;

import com.gdevelop.gwtxp.rebind.el.ELParser;
import com.gdevelop.gwtxp.rebind.el.Node;

import com.google.gwt.core.ext.typeinfo.NotFoundException;


public class TabTag extends AbstractTag{
  public TabTag() {
  }

  public Class getUIClass() {
    return null;
  }

  public void generateAddUI(Tag child) throws NotFoundException {
    String tabText = this.getAttribute("tabText");
    if (tabText == null){
      tabText = "";
    }
    out.print(parent.getVarName() + ".add(" + child.getVarName() + ", ");
    Node elNode = ELParser.parse(tabText);
    out.print(elNode.generateGetExpressionWithConversion(elContext, TYPE_String));
    out.println(");");
    
    if (child == this.children.get(0)){
      out.println(parent.getVarName() + ".selectTab(0);");
    }
  }

  public void generateDeclaration() {
    // No-op
  }
}
